
import {
  loginRequest,
  updateTikrokMemberRequest
} from './api/user'

var amapFile = require('./libs/amap-wx.130');//如：..­/..­/libs/amap-wx.js

App({

  onLaunch: function (option) {
    //...

    /** 获取系统信息 */
    this.getSystemInfo();

    /** 获取地理位置 */
    this.getLocationInfo();

    // /** 用户登录 */
    this.usersLogin();    // 用户登录

    // /** 监听用户登录状态 */
    // this.checkSession();     // 用户登录状态

  },

  globalData: {
    isIphone: false,
    shareUser: '',
    userId: '',
    userType: '',
    locationInfo: {},
    // baseUrl: "http://10.168.1.144:9093/api",      /* 线上 */
    // baseUrl: "http://10.168.1.144:8383/mApi"      /* 王玉龙 */
  },

  /** 用户登录 */
  usersLogin: function () {
    let that = this;
    tt.login({
      force: true,
      success(res) {
        console.log('用户登录成功   >>>>   ' + JSON.stringify(res));
        let params = {
          code: res.code
        };
        loginRequest(params).then((res) => {
          console.log('loginRequest请求成功   >>>>   ' + JSON.stringify(res));
          let token = res.result.token
          tt.setStorage({
            key: 'token',
            data: token
          })
          tt.setStorageSync('token', token)

          /** 记录用户的id 分享的时候用 */
          let userId = res.result.id
          tt.setStorage({
            key: 'userId',
            data: userId
          })
          tt.setStorageSync('userId', userId)

          that.globalData.userId = userId
          that.globalData.userType = res.result.userType

          that.getUserInfo();       // 获取用户信息
        }).catch((res) => {
          console.log("loginRequest请求失败")
          console.log(res)
        })
      },
      fail(res) {
        console.log(`login 调用失败`);
      },
    });
  },

  /** 获取用户信息 */
  getUserInfo: function () {
    tt.getUserInfo({
      /**
       * withCredentials	boolean	false	否	是否需要返回敏感数据	1.0.0
       * success	Function		否	接口调用成功的回调函数	1.0.0
       * complete	Function		否	接口调用结束的回调函数（调用成功、失败都会执行）	1.0.0
       * fail	Function		否	接口调用失败的回调函数	1.0.0
       */
      withCredentials: true,
      success(res) {
        /**
         * rawData	string	userInfo 的 JSON 字符串形式	
         * userInfo	object	用户信息
         */
        /** 存储用户信息 */
        tt.setStorage({
          key: "userInfo",
          data: res.userInfo,
          success(res) {
            console.log(`set seen ad flag`);
            console.log(res)
          },
          fail(res) {
            console.log(`setStorage调用失败`);
          },
        });

        /** 更新用户头像和昵称 */
        let params = {
          nickName: res.userInfo.nickName,
          path: res.userInfo.avatarUrl,
        };
        console.log("updateTikrokMemberRequest")
        console.log(params)
        updateTikrokMemberRequest(params).then((res) => {
          console.log("updateTikrokMemberRequest请求成功")
          console.log(res)
        }).catch((res) => {
          console.log("updateTikrokMemberRequest请求失败")
          console.log(res)
        })

      },
      fail(res) {
        console.log(`getUserInfo 调用失败`);
      },
    });
  },

  /** 获取用户地理位置 */
  getLocationInfo: function () {
    let that = this
    var myAmapFun = new amapFile.AMapWX({key:'9d7e516361cc1fa3b2e8102f7b57a12e'});
    myAmapFun.getRegeo({
      success: function(locationInfo){
        //成功回调
        console.log("位置成功回调")
        console.log(">>>>>>>>>>>>>>位置成功回调<<<<<<<<<<<<")
        console.log(">>>>>>>>>>>>>>位置成功回调<<<<<<<<<<<<")
        console.log(">>>>>>>>>>>>>>位置成功回调<<<<<<<<<<<<")
        console.log(">>>>>>>>>>>>>>位置成功回调<<<<<<<<<<<<")
        console.log(locationInfo)
        that.globalData.locationInfo = locationInfo[0].regeocodeData.addressComponent
        let province = that.globalData.locationInfo.province
        let district = that.globalData.locationInfo.district
        console.log(province)
        console.log(that.globalData.locationInfo.city)
        console.log(district)
        tt.reLaunch({
            url: `../../pages/homeIndex/homeIndex`
        })
      },
      fail: function(info){
        //失败回调
        console.log("位置失败回调")
        console.log(info)
        tt.reLaunch({
            url: `../../pages/homeIndex/homeIndex`
        })
      }
    })
  },

  /** 更新用户头像和昵称 */
  updateUserHeaderAndNickName: function () {

  },

  /** 监听用户登录状态 */
  checkSession: function () {
    let that = this;
    /**
     * 用户的登录态具有时效性，随着用户未使用小程序的时间增加，用户的登录态越容易失效；反之，则用户登录态可持续保持有效。使用该 API 可检查用户当前的 session 状态是否有效，登录态过期后开发者可以再调用 tt.login 获取新的用户登录态。
     * Tip：只有成功调用 tt.login 才会生成 session，tt.checkSession 也会因此进入 success 回调，当用户退出登录会清除 session
     */
    tt.checkSession({
      success() {       // session 未过期
        that.getUserInfo();       // 获取用户信息
      },
      fail() {          // session 已过期，需要重新登录
        that.usersLogin();    // 用户登录
      },
    });
  },

  /** 获取系统信息 */
  getSystemInfo: function () {
    let that = this
    tt.getSystemInfo({
      success: (res) => {
        console.log(res)
        if (res.platform !== "devtools") {
          // console.log = () => { }
        }
        var name = 'iPhone'
        if (res.model.indexOf(name) > -1) {
          that.globalData.isIphone = true
        }
      }
    });

  },





})
